<?php

    header ('Content-Type: image/png');

    //画图像
    $im=imagecreatetruecolor(120,30);

    //填充颜色
    $bgcolor=imagecolorallocate($im,255,255,255);

    //画背景
    imagefilledrectangle($im,0,0,120,30,$bgcolor);

    //画干扰点
    for($i=0; $i<500 ; $i++){
        $dcolor=imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
        imagesetpixel($im,mt_rand(10,120),mt_rand(10,120),$dcolor);
    }

    //画线
    for($i=0; $i<30 ; $i++){
     $l_color=imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
        imagearc($im,mt_rand(10,120),mt_rand(10,120),mt_rand(0,120),mt_rand(0,30),mt_rand(-180,180),mt_rand(-180,180),$l_color);
    }

    //定义填充内容
    $str='123456789qwertyuipasdfghjklzxcvbnmQWERTYUIPASDFGHJKLZXCVBNM';
    for($i=1;$i<=4;$i++){
        $j=mt_rand(0,strlen($str)-1);
        $font=$str[$j];
        $code.=$font;
        $font_color=imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
        imagefttext($im, 18 , 0, 20*$i, mt_rand(15,25), $font_color, 'C:/Windows/Fonts/OratorStd-Slanted.otf', $font);
    }

    ob_clean();
    $_SESSION['code']=$code;
    imagepng($im);//生成图片